package com.example.android60permission;

import android.graphics.Path;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.animation.AnticipateInterpolator;
import android.view.animation.PathInterpolator;

import java.util.ArrayList;
import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;

public class TwoActivity extends AppCompatActivity {

    @Bind(R.id.recycle)
    RecyclerView recycle;


    List<TestBean> datas;
    BaseMultiAdapter adapter;
    /**
     * enter(1,2,3,4)
     * 1:activity
     * 2: duarin time
     * 3: 时间差值器，原生的为以下集中
     * AccelerateDecelerateInterpolator============动画开始与结束的地方速率改变比较慢，在中间的时候加速。
     * AccelerateInterpolator===================动画开始的地方速率改变比较慢，然后开始加速。
     * AnticipateInterpolator ==================开始的时候向后然后向前甩。
     * AnticipateOvershootInterpolator=============开始的时候向后然后向前甩一定值后返回最后的值。
     * BounceInterpolator=====================动画结束的时候弹起。
     * CycleInterpolator======================动画循环播放特定的次数，速率改变沿着正弦曲线。
     * DecelerateInterpolator===================在动画开始的地方快然后慢。
     * LinearInterpolator======================以常量速率改变。
     * OvershootInterpolator====================向前甩一定值后再回到原来位置。
     * PathInterpolator========================新增的，就是可以定义路径坐标，然后可以按照路径坐标来跑动；注意其坐标并不是 XY，而是单方向，也就是我可以从0~1，然后弹回0.5 然后又弹到0.7 有到0.3，直到最后时间结束。
     * <p>
     * <p>
     * 4:动画监听
     *
     * @param savedInstanceState
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        ButterKnife.bind(this);

        EasyTransition.enter(this, 1000, new AnticipateInterpolator(1.0f), null);

        initData();

        adapter = new BaseMultiAdapter(datas);
        recycle.setLayoutManager(new LinearLayoutManager(this));
        recycle.setAdapter(adapter);
    }

    private void initData() {
        datas = new ArrayList<>();
        TestBean bean;
        for(int i = 0;i<10;i++){
            if(i%2 == 0){
                bean = new TestBean(0);
                bean.setName("要不要名字..."+i);
                bean.setDesc("要不要描述..."+i);
            }else {
                bean = new TestBean(1);
                bean.setName("不要名字..."+i);
                bean.setDesc("不要描述..."+i);
            }
            datas.add(bean);
        }
    }

    @Override
    public void onBackPressed() {
        Path path = new Path();
        path.lineTo(0f, 1f);

        path.close();
        EasyTransition.exit(this, 1000, new PathInterpolator(0.33f, 0f, 0.12f, 1f));
    }
}
